import java.util.Scanner;

public class demo {
    //     计算糖果
//    A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息：
//A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每个人所拥有的糖果数.
//现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保证最多只有一组整数A,B,C满足所有题设条件。
//    输入描述：
//输入为一行，一共4个整数，分别为A - B，B - C，A + B，B + C，用空格隔开。 范围均在-30到30之间(闭区间)。
//输出描述：
//输出为一行，如果存在满足的整数A，B，C则按顺序输出A，B，C，用空格隔开，行末无空格。 如果不存在这样的整数A，B，C，则输出No
    public static void main1(String[] args) {
        Scanner sc = new Scanner(System.in);
        int y1 = sc.nextInt();
        int y2 = sc.nextInt();
        int y3 = sc.nextInt();
        int y4 = sc.nextInt();
        int a = (y1+y3)/2;
        int c = (y4-y2)/2;
//        注意多次判断 确保糖果数量满足题意
        int b1 = (y3-y1)/2;
        int b2 = (y2+y4)/2;
        if (b1 == b2) {
            System.out.println(a+" "+b1+" "+c);
        }else {
            System.out.println("No");
        }
    }





//    进制转换
//    描述
//给定一个十进制数M，以及需要转换的进制数N。将十进制数M转化为N进制数
//输入描述：
//输入为一行，M(32位整数)、N(2 ≤ N ≤ 16)，以空格隔开。
//输出描述：
//为每个测试实例输出转换后的数，每个输出占一行。如果N大于9，则对应的数字规则参考16进制（比如，10用A表示，等等）

    //    十进制数的进制转换使用辗转相除法获取每步的余数；这里需要考虑几种情况：
//1.十进制数为负数时，这个时候就需要将十进制数转换成一个整数进行转换，只不过在最后输出的时候在结果加上一个负号就好了
//2.输出的值不止是阿拉伯数字，还有A-F，可以使用一个数组保存，对余数进行判断就好了；
//△3.辗转相除得到的结果最后输出需要反序，因为计算的结果是反的；
//    StringBuilder 是一个字符拼接的工具类，
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int m = sc.nextInt();
        int n = sc.nextInt();
        String str = "0123456789ABCDEF";
        StringBuilder builder = new StringBuilder();
        int flag = 1;//判断正负数
        if (m < 0) {
            m = -m;
            flag = -1;
        }
        if (m == 0) {
            System.out.println(0);
            return;
        }
        while (m != 0) {
            builder.append(str.charAt(m%n));
            m = m/n;
        }
        if (flag == -1) {
            builder.append("-");
        }
        builder.reverse();
        System.out.println(builder);
    }
}
